package com.cardone.platform.configuration.service;

import java.util.List;
import java.util.Map;

import com.cardone.common.cache.support.CacheEvictSupport;
import com.cardone.common.dto.PaginationDto;
import com.cardone.platform.configuration.dto.DictionaryDto;
import com.cardone.platform.configuration.dto.DictionaryTypeDto;

/**
 * 字典服务
 * 
 * @author yaoht
 */
public interface DictionaryService extends CacheEvictSupport {
	/**
	 * spring bean id
	 */
	String BEAN_ID = "com.cardone.platform.configuration.service.DictionaryService";

	/**
	 * 保存:字典类型
	 * 
	 * @param saveDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTypeDto saveDictionaryTypeByIdOrCode(DictionaryTypeDto saveDictionaryType);

	/**
	 * 保存:字典类型
	 * 
	 * @param saveDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTypeDto saveDictionaryTypeByName(DictionaryTypeDto saveDictionaryType);

	/**
	 * 删除:字典类型
	 * 
	 * @param deleteDictionaryType
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryTypeByCode(DictionaryTypeDto deleteDictionaryType);

	/**
	 * 删除:字典类型
	 * 
	 * @param deleteDictionaryType
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryTypeByIds(DictionaryTypeDto deleteDictionaryType);

	/**
	 * 设置:字典类型
	 * 
	 * @param updateDictionaryType
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int updateDictionaryTypeByCode(DictionaryTypeDto updateDictionaryType);

	/**
	 * 设置:字典类型
	 * 
	 * @param updateDictionaryType
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int updateDictionaryTypeByIds(DictionaryTypeDto updateDictionaryType);

	/**
	 * 读取:字典类型
	 * 
	 * @param readDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	Integer readDictionaryTypeByCodeNqId(DictionaryTypeDto readDictionaryType);

	/**
	 * 读取:字典类型
	 * 
	 * @param readDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	Integer readDictionaryTypeByName(DictionaryTypeDto readDictionaryType);

	/**
	 * 查询:字典类型
	 * 
	 * @param findDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTypeDto findDictionaryTypeByCode(DictionaryTypeDto findDictionaryType);

	/**
	 * 查询:字典类型
	 * 
	 * @param findDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTypeDto findDictionaryTypeById(DictionaryTypeDto findDictionaryType);

	/**
	 * 查询:字典类型
	 * 
	 * @param findListDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<DictionaryTypeDto> findListDictionaryTypeByCode(DictionaryTypeDto findListDictionaryType);

	/**
	 * 查询:字典类型
	 * 
	 * @param findListDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<DictionaryTypeDto> findListDictionaryTypeByName(DictionaryTypeDto findListDictionaryType);

	/**
	 * 分页:字典类型
	 * 
	 * @param paginationDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型分页对象
	 */
	PaginationDto<DictionaryTypeDto> paginationDictionaryTypeByCode(DictionaryTypeDto paginationDictionaryType);

	/**
	 * 分页:字典类型
	 * 
	 * @param paginationDictionaryType
	 *            字典类型对象
	 * 
	 * @return 字典类型分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDictionaryTypeByName(DictionaryTypeDto paginationDictionaryType);

	/**
	 * 保存:字典
	 * 
	 * @param saveDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto saveDictionaryByIdOrCode(DictionaryDto saveDictionary);

	/**
	 * 保存:字典
	 * 
	 * @param saveDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto saveDictionaryByName(DictionaryDto saveDictionary);

	/**
	 * 删除:字典
	 * 
	 * @param deleteDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryByCode(DictionaryDto deleteDictionary);

	/**
	 * 删除:字典
	 * 
	 * @param deleteDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryByIds(DictionaryDto deleteDictionary);

	/**
	 * 设置:字典
	 * 
	 * @param updateDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int updateDictionaryByCode(DictionaryDto updateDictionary);

	/**
	 * 设置:字典
	 * 
	 * @param updateDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int updateDictionaryByIds(DictionaryDto updateDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	Integer readDictionaryByCodeNqId(DictionaryDto readDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	Integer readDictionaryByName(DictionaryDto readDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto findDictionaryByCode(DictionaryDto findDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto findDictionaryById(DictionaryDto findDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findListDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<DictionaryDto> findListDictionaryByCode(DictionaryDto findListDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findListDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<DictionaryDto> findListDictionaryByName(DictionaryDto findListDictionary);

	/**
	 * 分页:字典
	 * 
	 * @param paginationDictionary
	 *            字典对象
	 * 
	 * @return 字典分页对象
	 */
	PaginationDto<DictionaryDto> paginationDictionaryByCode(DictionaryDto paginationDictionary);

	/**
	 * 分页:字典
	 * 
	 * @param paginationDictionary
	 *            字典对象
	 * 
	 * @return 字典分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDictionaryByName(DictionaryDto paginationDictionary);
}